/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.biblioteca8a.bl;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.itschapala.dsw2.biblioteca8a.dao.LibroDaoLocal;
import mx.itschapala.dsw2.biblioteca8a.enumeracion.EstadoDetallePrestamo;
import mx.itschapala.dsw2.biblioteca8a.enumeracion.EstadoServicio;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;

/**
 *
 * @author Dhavid
 */
@Stateless
public class LibroBl implements LibroBlLocal {

    @EJB
    private LibroDaoLocal libroDao;

    @Override
    public EstadoServicio register(Libro book) {
        if (libroDao.findClave(book) == null) {
            //no se pudo hacer
            return EstadoServicio.INCOMPLETE;
        } else {

            // ya lo hizo
            return EstadoServicio.COMPLETE;
        }
    }

    @Override
    public EstadoServicio modify(Libro book) {
        if (book.getId() == null || libroDao.find(book.getId()) == null) {
            return EstadoServicio.INCOMPLETE;
        } else {
//         libroDao.edit(book);
            return EstadoServicio.COMPLETE;
        }
    }

    @Override
    public EstadoServicio delete(Libro book) {
        if (libroDao.find(book.getId()) == null || book.getId() == null) {

            return EstadoServicio.INCOMPLETE;
        } else {
            libroDao.remove(book);
            return EstadoServicio.COMPLETE;
        }
    }

    @Override
    public List<Libro> getAll() {
        return libroDao.findAll();
    }

    @Override
    public Libro findById(Integer id) {
        return libroDao.find(id);
    }

    @Override
    public Libro findByClaveforLend(String clave) {
        Libro lbusqueda = new Libro();
        lbusqueda.setClave(clave);
        Libro book = libroDao.findClave(lbusqueda);
        if (book != null && book.getEstado().equals(EstadoDetallePrestamo.RETURN.name())) {
        }
        return null;
    }
}
